Machine vision systems use image acquisition devices that include camera sensors to deliver information related to a viewed subject. The system then interprets this information according to a variety of algorithms to perform a programmed decision-making and/or identification function.
Generally, symbology (also termed “ID”) reading entails the aiming of an image acquisition sensor (CMOS camera, CCD, etc.) at a location on an object that contains a symbol (a “barcode”), and acquiring an image of that symbol. The symbol contains a set of predetermined patterns that represent an ordered group of characters or shapes from which an attached data processor (for example, a microcomputer) can derive useful information about the object (e.g. its serial number, type, model, price, etc.). Symbols/barcodes are available in a variety of shapes and sizes. One of the most commonly employed symbol types used in marking and identifying objects are the so-called one-dimensional or “linear” barcode, one common for of which comprises a series of vertical stripes of varying width and spacing. While an image sensor that acquires pixels representative of the scene containing the barcode is described generally herein, other techniques and device for acquiring barcode information, including well-known laser scanners have also been used to acquire barcode information.
By way of background FIG. 1 shows an exemplary scanning system 100 adapted for handheld operation. An exemplary handheld scanning appliance in the form of a handpiece 102 is provided. It includes a grip section 104 and a body section 106. An image formation and processing system 151, shown in phantom, can be controlled and can direct image data to an onboard embedded processor and associated memory 109 that controls illumination image capture and other system processes. This processor 109 can also include, or be operatively connected to, an ID decoding application or sub-processor 113 by image data is interpreted into usable information (for example, alphanumeric strings derived from the symbols (such as the depicted one-dimensional (1D) barcode image 195) placed on the surface of an object. The decoded information can be directed via a cable 111 or wireless link to a PC or other data storage device 112 having (for example) a display 114, keyboard 116 and mouse 118, where it can be stored and further manipulated using an appropriate application 121. The application 121 can also include various interface components that allow the embedded processor 109 to be programmed with appropriate vision tools 130 needed for the particular ID identification and decoding task. In addition, the interface application can be used to diagnose scanner problems and/or determine other status items with respect to the scanner. A USB (2.0) or wireless interface allows for temporary connection of the scanning appliance 102 with respect to the PC 112. The precise arrangement of the handheld scanning appliance with respect to its embedded processor, ID decoding application, computer interface and/or other processors and processes is highly variable.
The scanning process can be adapted to respond to inputs from the scanning appliance 102. For example, when the operator toggles a trigger 122 on the hand held scanning appliance 102, an internal camera image sensor (within the image formation system 151) captures an image of a field of view 131 on an object 105. Within the field of view resides an exemplary region of interest (ROI), which includes the exemplary one-dimensional (1D) symbol 195 that can be used to identify the nature and quality of the underlying object 105. One or more visual indicators 141 on the scanning appliance 102 can be illuminated or otherwise addressed (e.g. an LCD alphanumeric display) by signals from the processor 109 to indicate a successful read and decode of the symbol 195. Audible indicators can also be activated to denote associated events.
One desirable feature for a scanning appliance is the ability to self-trigger the scanning process when an ID (i.e. symbol 195) is detected within the ROI. Image-based (i.e. employing an image sensor and vision system) symbology/ID scanners generally require a trigger to indicate when an ID (barcode) is in the field of view in order to begin the ID-finding and decoding process. Likewise, the ID finding process can be part of the trigger. That is, the trigger occurs in response to the finding of an ID within the field of view of the scanner. For many applications, it may be difficult to provide such a trigger because (a) it may not be known by an outside source (i.e. the potential trigger generator) when the barcode is in the field of view (b) it may be impossible to generate a reliable trigger given the mechanics of the operation. The difficulty increases when the barcode moves in a fashion that is not completely controlled in motion, position, and/or direction relative to the imaging system. More, generally, the number of image-capture and image-decoding events per second inherent to the system limits the ability to adequately scan an ID. Thus, rapid movement of the scanning appliance, and/or orienting the appliance at a steep angle with respect to the ID, can render most or all of the limited number of capture events inadequate to detect or decode the ID.
Moreover, it is recognized that certain aspects of the code itself can make it difficult to detect or decode it within a limited number of capture events—and a moving scanner typically results in a more limited group of usable image-captures. In particular, certain codes that have low contrast (e.g. printing on a brown cardboard box) may require the imaging system to perform adjustments to capture settings (such as gain or exposure) during the capture process. In such cases, the initial capture settings may be inadequate and there may be latency until the final, more-sufficient capture settings are adjusted. The number of captures available after this initial capture and adjustment latency may be quite small and make the detection and/or decoding of an ID difficult.
Alternatively, a user can employ a laser scanner to enable self-triggering and overcoming some motion in the barcode relative to the scanning device. However, laser scanners employ mechanical parts, such as moving mirrors that may become a maintenance burden. In addition, laser scanners perform more poorly than image-based ID scanners for difficult-to-read codes due to poor contrast, damage to the code print, etc.
Another alternative scanning approach is to employ a line-scan camera-based scanning appliance to capture images of the ID on an underlying object. Using line-camera, the entire field of view is continually imaged and processed, searching for ID-like features within the field off view and processing these features as they are detected. However, a disadvantage of line scan cameras is that they typically require careful control of the line scan rate, rendering them difficult or impossible to use in situations where the motion between the ID and the camera cannot be reliably or accurately measured and/or controlled.
A variety of currently available scanning appliances employ a digital signal processor (DSP) to accomplish the various functions needed to detect and decode an ID. Such DSPs, thus, include the vision system elements along with a conventional or customized ID-decoding application or process. This tends to limit processing speed as image pixels are captured, compared in neighborhood operations for appropriate regions of interest containing ID-like features, such features are extracted and then acted upon by the decoder in a step-by-step manner. When the ID and scanning appliance pixel array are moving relatively quickly with respect to each other—for example as a user rapidly passes the scanner over the ID, the capture rate of conventional image sensors/pixel arrays (often no greater than about 60 frames per second), combined with the processing throughput of conventional DSPs, is often insufficient to provide enough readable frames to decode the ID. Even given 60 frames per second, only a fraction of those frames will capture the complete ID, and several of those frames may be utilized exclusively to change the pixel array's imaging parameters (for lighting and contrast change, etc.), thus rendering them unusable for the decoding process. Hence, the final number of usable images for decoding can quickly approach zero in a conventional implementation.
It is, therefore, desirable to provide a system and method for capturing, detecting and identifying symbology/ID features, which allows for a wide range of rate motion and uncontrolled position/direction of the scanning appliance with respect to the object and associated ID (such as a 1D barcode). This system and method should enable the scanning appliance's imaging system to operate for tasks that were previously challenging or unachievable, such as those involving barcode reading in point-of-sale swipe scan systems. In addition it is desirable to provide a system and method that effectively reduces or eliminates the need for a trigger in an image-based scanning appliance, thereby allowing the scanner's imaging system to compete with laser scanners in environments where a trigger is difficult or impossible to configure. More generally, the system and method should facilitate a higher number of image capture and read events per second so as to increase the likelihood of one or more successful decoding events.